home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / short24.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  45.5 KB  |  1,603 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:CALL_INFIX_DIV.arguments*/
  10. void r520short(T520* C){
  11. /*IF*/if ((X662precedence((((T520*)C))->_target/*8*/))==(13)) {
  12. X662short((((T520*)C))->_target/*8*/);
  13. /*[IRF3.6short_print_feature_name*/{T520* C1=C;
  14. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T520*)C1))->_feature_name/*24*/);
  15. }/*]*/
  16. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  17. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  18. }
  19.  else if ((8)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/))) {
  20. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  21. }
  22. else {
  23. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  24. }
  25. /*FI*/}
  26.  else if ((X662precedence((((T520*)C))->_target/*8*/))<(8)) {
  27. X662bracketed_short((((T520*)C))->_target/*8*/);
  28. /*[IRF3.6short_print_feature_name*/{T520* C1=C;
  29. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T520*)C1))->_feature_name/*24*/);
  30. }/*]*/
  31. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  32. }
  33. else {
  34. X662short((((T520*)C))->_target/*8*/);
  35. /*[IRF3.6short_print_feature_name*/{T520* C1=C;
  36. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T520*)C1))->_feature_name/*24*/);
  37. }/*]*/
  38. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/);
  39. }
  40. /*FI*/}
  41. T0* r520add_comment(T520* C,T0* a1){
  42. T0* R=NULL;
  43. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  44. R=(T0*)C;
  45. }
  46. else {
  47. {T529*n=malloc(sizeof(*n));
  48. *n=M529;
  49. r529make(n,(T0*)C,a1);
  50. R=(T0*)n;
  51. }
  52. }
  53. /*FI*/return R;
  54. }
  55. int r520to_integer(T520* C){
  56. int R=0;
  57. r520error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  58. return R;
  59. }
  60. void r520bracketed_short(T520* C){
  61. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  62. r520short(C);
  63. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  64. }
  65. int r520is_a(T520* C,T0* a1){
  66. int R=0;
  67. R=X291is_a(X291run_type((((T520*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  68. /*IF*/if (!(R)) {
  69. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  70. r520error(X662start_position(a1),((T0*)ms4_662));
  71. }
  72. /*FI*/return R;
  73. }
  74. /*No:CALL_INFIX_DIV.is_current*/
  75. void r520make(T520* C,T0* a1,T0* a2,T0* a3){
  76. T0* _eal=NULL;
  77. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  78. r683add_position(a2);
  79. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  80. r683fatal_error(((T683*)(oBC364eh)),b1);
  81. }/*]*/
  82. }
  83. /*FI*/{T454*n=malloc(sizeof(*n));
  84. *n=M454;
  85. r454make(n,r520operator(),a2);
  86. C->_feature_name=(T0*)n;
  87. }
  88. {T431*n=malloc(sizeof(*n));
  89. *n=M431;
  90. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  91. /*]*/
  92. _eal=(T0*)n;
  93. }
  94. r520make_call_1(C,a1,(((T520*)C))->_feature_name/*24*/,_eal);
  95. }
  96. /*No:CALL_INFIX_DIV.nb_errors*/
  97. /*No:CALL_INFIX_DIV.feature_name*/
  98. /*No:CALL_INFIX_DIV.fz_iinaiv*/
  99. /*No:CALL_INFIX_DIV.run_feature*/
  100. /*No:CALL_INFIX_DIV.start_position*/
  101. /*No:CALL_INFIX_DIV.target*/
  102. /*No:CALL_INFIX_DIV.precedence*/
  103. T0* r520to_runnable(T520* C,T0* a1){
  104. T0* R=NULL;
  105. T0* _tla=NULL;
  106. T0* _a=NULL;
  107. /*IF*/if (((((T520*)C))->_current_type/*4*/)==((void*)(NULL))) {
  108. r520to_runnable_0(C,a1);
  109. _a=r431to_runnable(((T431*)((((T520*)C))->_arguments/*20*/)),a1);
  110. /*IF*/if ((_a)==((void*)(NULL))) {
  111. r520error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  112. }
  113. else {
  114. C->_arguments=_a;
  115. }
  116. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  117. r431match_with(((T431*)((((T520*)C))->_arguments/*20*/)),(((T520*)C))->_run_feature/*12*/);
  118. }
  119. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  120. _tla=(((T520*)C))->_result_type/*16*/;
  121. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  122. case 239: 
  123. break;
  124. default:
  125. _tla=NULL;
  126. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  127. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T520*)C))->_arguments/*20*/)))/*)*/));
  128. }
  129. /*FI*/}
  130. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  131. R=(T0*)C;
  132. }
  133. /*FI*/}
  134. else {
  135. R=r520twin(C);
  136. /*[IRF3.3set_current_type*/((((T520*)(((T520*)R))))->_current_type)=(NULL);
  137. /*]*/
  138. R=r520to_runnable(((T520*)R),a1);
  139. }
  140. /*FI*/return R;
  141. }
  142. /*No:CALL_INFIX_DIV.short_print_feature_name*/
  143. /*No:CALL_INFIX_DIV.us_slash*/
  144. /*No:CALL_INFIX_DIV.result_type*/
  145. T0* r520twin(T520* C){
  146. T0* R=NULL;
  147. R=malloc(sizeof(*C));
  148. *((T520*)R)=*C;
  149. return R;
  150. }
  151. /*No:CALL_INFIX_DIV.set_current_type*/
  152. T0* r520operator(void){
  153. T0* R=NULL;
  154. R=((T0*)ms47_473);
  155. return R;
  156. }
  157. /*No:CALL_INFIX_DIV.atomic_precedence*/
  158. /*No:CALL_INFIX_DIV.current_type*/
  159. void r520make_call_1(T520* C,T0* a1,T0* a2,T0* a3){
  160. C->_target=a1;
  161. C->_feature_name=a2;
  162. C->_arguments=a3;
  163. }
  164. /*No:CALL_INFIX_DIV.is_manifest_string*/
  165. /*No:CALL_INFIX_DIV.is_void*/
  166. void r520to_runnable_0(T520* C,T0* a1){
  167. C->_current_type=a1;
  168. r520cpc_to_runnable(C,a1);
  169. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T520*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  170. /*IF*/if (((((T520*)C))->_result_type/*16*/)==((void*)(NULL))) {
  171. r683add_position(X496start_position((((T520*)C))->_run_feature/*12*/));
  172. r520error((((T454*)((T454*)((((T520*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  173. }
  174.  else if (X291is_like_current((((T520*)C))->_result_type/*16*/)) {
  175. C->_result_type=X662result_type((((T520*)C))->_target/*8*/);
  176. }
  177. /*FI*/}
  178. void r520cpc_to_runnable(T520* C,T0* a1){
  179. T0* _rc=NULL;
  180. T0* _t=NULL;
  181. _t=X662to_runnable((((T520*)C))->_target/*8*/,a1);
  182. /*IF*/if ((_t)==((void*)(NULL))) {
  183. r683add_position(X662start_position((((T520*)C))->_target/*8*/));
  184. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  185. r683fatal_error(((T683*)(oBC364eh)),b1);
  186. }/*]*/
  187. }
  188. /*FI*/C->_target=_t;
  189. _rc=X291run_class(X662result_type((((T520*)C))->_target/*8*/));
  190. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  191. r576update((((T520*)C))->_target/*8*/,(((T520*)C))->_run_feature/*12*/);
  192. }
  193. void r520error(T0* a1,T0* a2){
  194. r683add_position(a1);
  195. r683error(((T683*)(oBC364eh)),a2);
  196. }
  197. /*No:CALL_INFIX_DIV.fatal_error*/
  198. /*No:CALL_INFIX_DIV.fz_bad_argument*/
  199. void r520short_target(T520* C){
  200. r520bracketed_short(C);
  201. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  202. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  203. }/*]*/
  204. }
  205. /*No:CALL_INFIX_DIV.arg1*/
  206. T0*oBC340ms_list=NULL;
  207. void r340add_last(T0* a1){
  208. r256add_last(((T256*)(oBC340ms_list)),a1);
  209. }
  210. /*No:ADDRESS_OF.rf*/
  211. void r708short(T708* C){
  212. /*[IRF3.6a_character*/{char b1='\44';
  213. /*[IRF3.6put_character*/{T830* C2=((T830*)(oBC1std_output));
  214. char c1=b1;
  215. putc(c1,((FILE*)(stdout)));
  216. }/*]*/
  217. }/*]*/
  218. X776short((((T708*)C))->_feature_name/*8*/);
  219. }
  220. T0* r708add_comment(T708* C,T0* a1){
  221. T0* R=NULL;
  222. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  223. R=(T0*)C;
  224. }
  225. else {
  226. {T529*n=malloc(sizeof(*n));
  227. *n=M529;
  228. r529make(n,(T0*)C,a1);
  229. R=(T0*)n;
  230. }
  231. }
  232. /*FI*/return R;
  233. }
  234. int r708to_integer(T708* C){
  235. int R=0;
  236. r708error(r708start_position(C),((T0*)ms69_470));
  237. return R;
  238. }
  239. void r708bracketed_short(T708* C){
  240. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  241. r708short(C);
  242. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  243. }
  244. int r708is_a(T708* C,T0* a1){
  245. int R=0;
  246. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T900*)/*(IRF4.8result_type*/r708type_pointer()/*)*/))/*)*/,X291run_type(X662result_type(a1)));
  247. /*IF*/if (!(R)) {
  248. r683add_position(r708start_position(C));
  249. r708error(X662start_position(a1),((T0*)ms4_662));
  250. }
  251. /*FI*/return R;
  252. }
  253. /*No:ADDRESS_OF.is_current*/
  254. /*No:ADDRESS_OF.make*/
  255. /*No:ADDRESS_OF.feature_name*/
  256. /*No:ADDRESS_OF.fz_iinaiv*/
  257. T0* r708start_position(T708* C){
  258. T0* R=NULL;
  259. R=X776start_position((((T708*)C))->_feature_name/*8*/);
  260. return R;
  261. }
  262. /*No:ADDRESS_OF.precedence*/
  263. T0* r708to_runnable(T708* C,T0* a1){
  264. T0* R=NULL;
  265. /*IF*/if (((((T708*)C))->_current_type/*4*/)==((void*)(NULL))) {
  266. C->_current_type=a1;
  267. C->_rf=r368get_rf_with(((T368*)(X291run_class(a1))),(((T708*)C))->_feature_name/*8*/);
  268. /*IF*/if (((((T708*)C))->_rf/*12*/)==((void*)(NULL))) {
  269. r708error(r708start_position(C),((T0*)ms2_708));
  270. }
  271. /*FI*/R=(T0*)C;
  272. }
  273. else {
  274. {T708*n=malloc(sizeof(*n));
  275. *n=M708;
  276. /*[IRF3.3make*/((((T708*)(n)))->_feature_name)=((((T708*)C))->_feature_name/*8*/);
  277. /*]*/
  278. R=(T0*)n;
  279. }
  280. R=r708to_runnable(((T708*)R),a1);
  281. }
  282. /*FI*/return R;
  283. }
  284. /*No:ADDRESS_OF.result_type*/
  285. /*No:ADDRESS_OF.atomic_precedence*/
  286. /*No:ADDRESS_OF.current_type*/
  287. /*No:ADDRESS_OF.is_manifest_string*/
  288. int fBC364type_pointer=0;
  289. T0*oBC364type_pointer=NULL;
  290. T0* r708type_pointer(void){
  291. if (fBC364type_pointer==0){
  292. T0* R=NULL;
  293. fBC364type_pointer=1;
  294. {T900*n=malloc(sizeof(*n));
  295. *n=M900;
  296. r900make(n,NULL);
  297. R=(T0*)n;
  298. }
  299. oBC364type_pointer=R;}
  300. return oBC364type_pointer;}
  301. /*No:ADDRESS_OF.is_void*/
  302. void r708error(T0* a1,T0* a2){
  303. r683add_position(a1);
  304. r683error(((T683*)(oBC364eh)),a2);
  305. }
  306. void r708short_target(T708* C){
  307. r708bracketed_short(C);
  308. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  309. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  310. }/*]*/
  311. }
  312. void r709short(T709* C){
  313. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  314. r709short_hook(C);
  315. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  316. }
  317. /*No:TYPE_ARRAY.array_of*/
  318. T0*oBC709tmp_written_mark=NULL;
  319. int r709has_creation(T709* C,T0* a1){
  320. int R=0;
  321. /*IF*/if ((C)==((void*)((((T709*)C))->_run_type/*16*/))) {
  322. R=r605has_creation(((T605*)(r709base_class(C))),a1);
  323. }
  324. else {
  325. R=r709has_creation(((T709*)((((T709*)C))->_run_type/*16*/)),a1);
  326. }
  327. /*FI*/return R;
  328. }
  329. /*No:TYPE_ARRAY.is_anchored*/
  330. /*No:TYPE_ARRAY.is_array*/
  331. int r709is_a(T709* C,T0* a1){
  332. int R=0;
  333. /*IF*/if ((r709run_class(C))==((void*)(X291run_class(a1)))) {
  334. R=1;
  335. }
  336.  else if (X291is_array(a1)) {
  337. R=X291is_a(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/,r701item(((T701*)(X291generic_list(a1))),1));
  338. /*IF*/if (!(R)) {
  339. /*[IRF3.6extend*/{char b1='\40';
  340. r7extend(((T7*)(oBC683explanation)),b1);
  341. }/*]*/
  342. r683add_type((T0*)C,((T0*)ms71_470));
  343. r683add_type(a1,((T0*)ms67_470));
  344. }
  345. /*FI*/}
  346.  else if (r605is_subclass_of(((T605*)(r709base_class(C))),X291base_class(a1))) {
  347. /*IF*/if (X291is_generic(a1)) {
  348. R=r605is_a_vncg(((T605*)(r709base_class(C))),(T0*)C,a1);
  349. }
  350. else {
  351. R=1;
  352. }
  353. /*FI*/}
  354. /*FI*//*IF*/if (!(R)) {
  355. r683add_type((T0*)C,((T0*)ms71_470));
  356. r683add_type(a1,((T0*)ms67_470));
  357. }
  358. /*FI*/return R;
  359. }
  360. /*No:TYPE_ARRAY.is_pointer*/
  361. /*No:TYPE_ARRAY.run_type*/
  362. /*No:TYPE_ARRAY.us_lower*/
  363. /*No:TYPE_ARRAY.us_array*/
  364. /*No:TYPE_ARRAY.is_string*/
  365. /*No:TYPE_ARRAY.is_like_feature*/
  366. /*No:TYPE_ARRAY.is_like_current*/
  367. /*No:TYPE_ARRAY.us_capacity*/
  368. void r709make(T709* C,T0* a1,T0* a2){
  369. T0* _owwm=NULL;
  370. {T451*n=malloc(sizeof(*n));
  371. *n=M451;
  372. r451make(n,((T0*)ms2_473),a1);
  373. C->_base_class_name=(T0*)n;
  374. }
  375. C->_generic_list=se_ma701(1,a2);
  376. _owwm=X291written_mark(a2);
  377. r7copy(((T7*)(oBC709tmp_written_mark)),((T0*)ms2_473));
  378. r7extend(((T7*)(oBC709tmp_written_mark)),'\133');
  379. r7append(((T7*)(oBC709tmp_written_mark)),_owwm);
  380. r7extend(((T7*)(oBC709tmp_written_mark)),'\135');
  381. C->_written_mark=r902item(oBC709tmp_written_mark);
  382. }
  383. /*No:TYPE_ARRAY.nb_errors*/
  384. /*No:TYPE_ARRAY.start_position*/
  385. /*No:TYPE_ARRAY.fz_inako*/
  386. /*No:TYPE_ARRAY.is_character*/
  387. /*No:TYPE_ARRAY.written_mark*/
  388. T0* r709to_runnable(T709* C,T0* a1){
  389. T0* R=NULL;
  390. T0* _rc=NULL;
  391. T0* _rt=NULL;
  392. T0* _elt2=NULL;
  393. T0* _elt1=NULL;
  394. /*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(C))) {
  395. R=(T0*)C;
  396. }
  397. else {
  398. _elt1=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  399. _elt2=X291to_runnable(_elt1,a1);
  400. /*IF*/if (((_elt2)==((void*)(NULL)))||(!(X291is_run_type(_elt2)))) {
  401. /*IF*/if ((_elt2)!=((void*)(NULL))) {
  402. r683add_position(X291start_position(_elt2));
  403. }
  404. /*FI*/r709error(X291start_position(_elt1),((T0*)ms59_470));
  405. }
  406. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  407. _elt2=X291run_type(_elt2);
  408. /*IF*/if (((((T709*)C))->_run_type/*16*/)==((void*)(NULL))) {
  409. R=(T0*)C;
  410. /*IF*/if ((_elt2)==((void*)(_elt1))) {
  411. C->_run_type=(T0*)C;
  412. r709load_basic_features(C);
  413. }
  414. else {
  415. {T709*n=malloc(sizeof(*n));
  416. *n=M709;
  417. r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  418. C->_run_type=(T0*)n;
  419. }
  420. r709load_basic_features(((T709*)((((T709*)C))->_run_type/*16*/)));
  421. }
  422. /*FI*/}
  423. else {
  424. R=r709twin(C);
  425. {T709*n=malloc(sizeof(*n));
  426. *n=M709;
  427. r709make_runnable(n,/*(IRF4.6start_position*/(((T451*)((T451*)((((T709*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,_elt2);
  428. _rt=(T0*)n;
  429. }
  430. /*[IRF3.3set_run_type*/((((T709*)(((T709*)R))))->_run_type)=(_rt);
  431. /*]*/
  432. r709load_basic_features(((T709*)_rt));
  433. }
  434. /*FI*/}
  435. /*FI*/}
  436. /*FI*/_rc=X291run_class(r701item(((T701*)((((T709*)((T709*)R)))->_generic_list/*8*/)),1));
  437. _rc=r709run_class(((T709*)R));
  438. return R;
  439. }
  440. int r709is_run_type(T709* C){
  441. int R=0;
  442. T0* _t=NULL;
  443. /*IF*/if (((((T709*)C))->_run_type/*16*/)!=((void*)(NULL))) {
  444. R=1;
  445. }
  446. else {
  447. _t=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  448. /*IF*/if ((X291is_run_type(_t))&&((X291run_type(_t))==((void*)(_t)))) {
  449. C->_run_type=(T0*)C;
  450. R=1;
  451. }
  452. /*FI*/}
  453. /*FI*/return R;
  454. }
  455. /*No:TYPE_ARRAY.is_formal_generic*/
  456. /*No:TYPE_ARRAY.generic_list*/
  457. /*No:TYPE_ARRAY.is_real*/
  458. T0* r709twin(T709* C){
  459. T0* R=NULL;
  460. R=malloc(sizeof(*C));
  461. *((T709*)R)=*C;
  462. return R;
  463. }
  464. /*No:TYPE_ARRAY.is_bit*/
  465. T0* r709smallest_ancestor(T709* C,T0* a1){
  466. T0* R=NULL;
  467. T0* _array_of3=NULL;
  468. T0* _array_of2=NULL;
  469. T0* _array_of1=NULL;
  470. T0* _rto=NULL;
  471. _rto=X291run_type(a1);
  472. /*IF*/if (X291is_array(_rto)) {
  473. _array_of1=X291run_type(/*(IRF4.6array_of*/r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1)/*)*/);
  474. _array_of2=r701item(((T701*)(X291generic_list(_rto))),1);
  475. _array_of3=X291smallest_ancestor(_array_of1,_array_of2);
  476. /*IF*/if ((_array_of3)==((void*)(_array_of1))) {
  477. R=(T0*)C;
  478. }
  479.  else if ((_array_of3)==((void*)(_array_of2))) {
  480. R=a1;
  481. }
  482. else {
  483. {T709*n=malloc(sizeof(*n));
  484. *n=M709;
  485. r709make(n,NULL,_array_of3);
  486. R=(T0*)n;
  487. }
  488. }
  489. /*FI*/}
  490. else {
  491. R=X291smallest_ancestor(_rto,(T0*)C);
  492. }
  493. /*FI*/return R;
  494. }
  495. /*No:TYPE_ARRAY.set_run_type*/
  496. /*No:TYPE_ARRAY.is_boolean*/
  497. /*No:TYPE_ARRAY.is_double*/
  498. /*No:TYPE_ARRAY.us_storage*/
  499. T0* r709run_class(T709* C){
  500. T0* R=NULL;
  501. /*IF*/if (r709is_run_type(C)) {
  502. R=r604run_class((((T709*)C))->_run_type/*16*/);
  503. }
  504. /*FI*/return R;
  505. }
  506. T0* r709run_time_mark(T709* C){
  507. T0* R=NULL;
  508. /*IF*/if (r709is_run_type(C)) {
  509. R=(((T709*)((T709*)((((T709*)C))->_run_type/*16*/))))->_written_mark/*12*/;
  510. }
  511. /*FI*/return R;
  512. }
  513. int r709is_a_in(T709* C,T0* a1,T0* a2){
  514. int R=0;
  515. T0* _ct=NULL;
  516. T0* _t2=NULL;
  517. T0* _t1=NULL;
  518. /*IF*/if (((((T709*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  519. R=1;
  520. }
  521. else {
  522. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  523. _t1=r709to_runnable(C,_ct);
  524. _t2=X291to_runnable(a1,_ct);
  525. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  526. R=1;
  527. }
  528. else {
  529. R=X291is_a(_t1,_t2);
  530. }
  531. /*FI*/}
  532. /*FI*/return R;
  533. }
  534. T0* r709look_up_for(T709* C,T0* a1,T0* a2){
  535. T0* R=NULL;
  536. R=r605look_up_for(((T605*)(r709base_class(C))),a1,a2);
  537. return R;
  538. }
  539. /*No:TYPE_ARRAY.expanded_initializer*/
  540. /*No:TYPE_ARRAY.fz_dot*/
  541. /*No:TYPE_ARRAY.is_generic*/
  542. /*No:TYPE_ARRAY.fz_bga*/
  543. /*No:TYPE_ARRAY.used_as_reference*/
  544. /*No:TYPE_ARRAY.is_reference*/
  545. void r709error(T0* a1,T0* a2){
  546. r683add_position(a1);
  547. r683error(((T683*)(oBC364eh)),a2);
  548. }
  549. void r709load_basic_features(T709* C){
  550. T0* _rc=NULL;
  551. T0* _rf=NULL;
  552. T0* _elt_type=NULL;
  553. _elt_type=r701item(((T701*)((((T709*)C))->_generic_list/*8*/)),1);
  554. /*IF*/if (X291is_expanded(_elt_type)) {
  555. r368set_at_run_time(((T368*)(X291run_class(_elt_type))));
  556. }
  557. /*FI*/_rc=r709run_class(C);
  558. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms55_473));
  559. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms87_473));
  560. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms140_473));
  561. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms130_473));
  562. }
  563. T0* r709base_class(T709* C){
  564. T0* R=NULL;
  565. T0* _bcn=NULL;
  566. _bcn=(((T709*)C))->_base_class_name/*4*/;
  567. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  568. R=r451base_class(((T451*)_bcn));
  569. }
  570. else {
  571. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  572. r7append(((T7*)(oBC683explanation)),b1);
  573. }/*]*/
  574. r683add_type((T0*)C,((T0*)ms67_470));
  575. r683print_as_fatal_error(((T683*)(oBC364eh)));
  576. }
  577. /*FI*/return R;
  578. }
  579. void r709short_hook(T709* C){
  580. r580a_class_name(((T580*)(oBC364short_print)),(((T709*)C))->_base_class_name/*4*/);
  581. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms1_709),((T0*)ms2_709));
  582. X291short_hook(r701first(((T701*)((((T709*)C))->_generic_list/*8*/))));
  583. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_709),((T0*)ms4_709));
  584. }
  585. /*No:TYPE_ARRAY.is_any*/
  586. /*No:TYPE_ARRAY.us_upper*/
  587. /*No:TYPE_ARRAY.base_class_name*/
  588. /*No:TYPE_ARRAY.is_expanded*/
  589. /*No:TYPE_ARRAY.is_basic_eiffel_expanded*/
  590. /*No:TYPE_ARRAY.is_none*/
  591. /*No:TYPE_ARRAY.is_integer*/
  592. void r709make_runnable(T709* C,T0* a1,T0* a2){
  593. r709make(C,a1,a2);
  594. C->_run_type=(T0*)C;
  595. }
  596. /*No:E_OLD.id*/
  597. void r664short(T664* C){
  598. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_664),((T0*)ms4_664));
  599. X662short((((T664*)C))->_expression/*8*/);
  600. }
  601. T0* r664add_comment(T664* C,T0* a1){
  602. T0* R=NULL;
  603. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  604. R=(T0*)C;
  605. }
  606. else {
  607. {T529*n=malloc(sizeof(*n));
  608. *n=M529;
  609. r529make(n,(T0*)C,a1);
  610. R=(T0*)n;
  611. }
  612. }
  613. /*FI*/return R;
  614. }
  615. int r664to_integer(T664* C){
  616. int R=0;
  617. r664error(r664start_position(C),((T0*)ms69_470));
  618. return R;
  619. }
  620. void r664bracketed_short(T664* C){
  621. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  622. r664short(C);
  623. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  624. }
  625. int r664is_a(T664* C,T0* a1){
  626. int R=0;
  627. R=X291is_a(X291run_type(r664result_type(C)),X291run_type(X662result_type(a1)));
  628. /*IF*/if (!(R)) {
  629. r683add_position(r664start_position(C));
  630. r664error(X662start_position(a1),((T0*)ms4_662));
  631. }
  632. /*FI*/return R;
  633. }
  634. /*No:E_OLD.is_current*/
  635. /*No:E_OLD.make*/
  636. /*No:E_OLD.fz_iinaiv*/
  637. /*No:E_OLD.expression*/
  638. T0* r664start_position(T664* C){
  639. T0* R=NULL;
  640. R=X662start_position((((T664*)C))->_expression/*8*/);
  641. return R;
  642. }
  643. /*No:E_OLD.precedence*/
  644. T0* r664to_runnable(T664* C,T0* a1){
  645. T0* R=NULL;
  646. T0* _exp=NULL;
  647. /*IF*/if (((((T664*)C))->_current_type/*4*/)==((void*)(NULL))) {
  648. C->_current_type=a1;
  649. _exp=X662to_runnable((((T664*)C))->_expression/*8*/,a1);
  650. /*IF*/if ((_exp)==((void*)(NULL))) {
  651. r664error(r664start_position(C),((T0*)ms1_664));
  652. }
  653. else {
  654. C->_expression=_exp;
  655. }
  656. /*FI*/r417increment(((T417*)(oBC664id_counter)));
  657. C->_id=(((T417*)((T417*)(oBC664id_counter))))->_value/*0*/;
  658. R=(T0*)C;
  659. }
  660. else {
  661. {T664*n=malloc(sizeof(*n));
  662. *n=M664;
  663. /*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T664*)C))->_expression/*8*/);
  664. /*]*/
  665. R=(T0*)n;
  666. }
  667. R=r664to_runnable(((T664*)R),a1);
  668. }
  669. /*FI*/return R;
  670. }
  671. T0* r664result_type(T664* C){
  672. T0* R=NULL;
  673. R=X662result_type((((T664*)C))->_expression/*8*/);
  674. return R;
  675. }
  676. /*No:E_OLD.current_type*/
  677. /*No:E_OLD.is_manifest_string*/
  678. /*No:E_OLD.is_void*/
  679. void r664error(T0* a1,T0* a2){
  680. r683add_position(a1);
  681. r683error(((T683*)(oBC364eh)),a2);
  682. }
  683. void r664short_target(T664* C){
  684. r664bracketed_short(C);
  685. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  686. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  687. }/*]*/
  688. }
  689. T0*oBC664id_counter=NULL;
  690. /*No:CST_ATT_CHARACTER.arguments*/
  691. T0* r554try_to_undefine(T554* C,T0* a1,T0* a2){
  692. T0* R=NULL;
  693. X776undefine_in(a1,a2);
  694. R=r554try_to_undefine_aux(C,a1,a2);
  695. /*IF*/if ((R)!=((void*)(NULL))) {
  696. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T554*)C))->_clients/*20*/);
  697. /*]*/
  698. }
  699. else {
  700. r605fatal_undefine(((T605*)a2),a1);
  701. }
  702. /*FI*/return R;
  703. }
  704. /*No:CST_ATT_CHARACTER.is_deferred*/
  705. void r554add_into(T554* C,T0* a1){
  706. T0* _fn=NULL;
  707. int _i=0;
  708. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  709. _i=1;
  710. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  711. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  712. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  713. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  714. r683add_position(X776start_position(_fn));
  715. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  716. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  717. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  718. r7append(((T7*)(oBC683explanation)),b1);
  719. }/*]*/
  720. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  721. }
  722. else {
  723. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  724. }
  725. /*FI*/_i=(_i)+(1);
  726. }
  727. }
  728. T0* r554try_to_undefine_aux(T554* C,T0* a1,T0* a2){
  729. T0* R=NULL;
  730. r683add_position(r554start_position(C));
  731. r554error(X776start_position(a1),((T0*)ms1_308));
  732. r605fatal_undefine(((T605*)a2),a1);
  733. return R;
  734. }
  735. void r554make(T554* C,T0* a1,T0* a2,T0* a3){
  736. r554make_e_feature(C,a1,a2);
  737. C->_value_mem=a3;
  738. }
  739. /*No:CST_ATT_CHARACTER.nb_errors*/
  740. /*No:CST_ATT_CHARACTER.set_header_comment*/
  741. T0* r554start_position(T554* C){
  742. T0* R=NULL;
  743. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T554*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  744. return R;
  745. }
  746. T0* r554to_run_feature(T554* C,T0* a1,T0* a2){
  747. T0* R=NULL;
  748. T0* _rc=NULL;
  749. _rc=X291run_class(a1);
  750. R=r368at(((T368*)_rc),a2);
  751. if(NULL!=(R))switch(((T0*)R)->id) {
  752. case 808: 
  753. break;
  754. default:
  755. R=NULL;
  756. };/*IF*/if ((R)==((void*)(NULL))) {
  757. {T808*n=malloc(sizeof(*n));
  758. *n=M808;
  759. r808make(n,a1,a2,(T0*)C);
  760. R=(T0*)n;
  761. }
  762. }
  763. /*FI*/return R;
  764. }
  765. /*No:CST_ATT_CHARACTER.ensure_assertion*/
  766. /*No:CST_ATT_CHARACTER.code_require*/
  767. /*No:CST_ATT_CHARACTER.result_type*/
  768. /*No:CST_ATT_CHARACTER.em1*/
  769. /*No:CST_ATT_CHARACTER.set_clients*/
  770. /*No:CST_ATT_CHARACTER.em2*/
  771. /*No:CST_ATT_CHARACTER.value*/
  772. /*No:CST_ATT_CHARACTER.require_assertion*/
  773. /*No:CST_ATT_CHARACTER.names*/
  774. /*No:CST_ATT_CHARACTER.value_mem*/
  775. int r554can_hide(T554* C,T0* a1,T0* a2){
  776. int R=0;
  777. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  778. /*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  779. r683add_position(X359start_position(a1));
  780. r554error(r554start_position(C),((T0*)ms5_359));
  781. }
  782. /*FI*/}
  783. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  784. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  785. r554error(r554start_position(C),((T0*)ms6_359));
  786. }
  787. /*FI*/}
  788. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  789. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  790. /*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  791. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  792. r7append(((T7*)(oBC683explanation)),b1);
  793. }/*]*/
  794. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  795. r7append(((T7*)(oBC683explanation)),b1);
  796. }/*]*/
  797. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  798. }
  799. /*FI*/}
  800. /*FI*/}
  801. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  802. /*IF*//*AF*//*AE*/
  803. /*FI*/}
  804. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  805. return R;
  806. }
  807. /*No:CST_ATT_CHARACTER.header_comment*/
  808. int r554is_merge_with(T554* C,T0* a1,T0* a2){
  809. int R=0;
  810. /*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  811. /*IF*/if ((((((T554*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  812. r683add_position(X359start_position(a1));
  813. r554error(r554start_position(C),((T0*)ms2_359));
  814. }
  815. /*FI*/}
  816. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  817. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  818. r554error(r554start_position(C),((T0*)ms3_359));
  819. }
  820. /*FI*/}
  821. /*FI*//*IF*/if (((((T554*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  822. /*IF*/if (!(X291is_a_in((((T554*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  823. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  824. }
  825. /*FI*/}
  826. /*FI*//*IF*//*AF*//*AE*/
  827. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  828. return R;
  829. }
  830. /*No:CST_ATT_CHARACTER.fz_dot*/
  831. /*No:CST_ATT_CHARACTER.first_name*/
  832. /*No:CST_ATT_CHARACTER.clients*/
  833. void r554collect_for(int a1){
  834. /*IF*/if ((a1)==(1001)) {
  835. /*IF*//*AF*//*AE*/
  836. /*FI*/}
  837. else {
  838. /*IF*//*AF*//*AE*/
  839. /*FI*/}
  840. /*FI*/}
  841. void r554error(T0* a1,T0* a2){
  842. r683add_position(a1);
  843. r683error(((T683*)(oBC364eh)),a2);
  844. }
  845. /*No:CST_ATT_CHARACTER.base_class*/
  846. void r554make_e_feature(T554* C,T0* a1,T0* a2){
  847. C->_names=a1;
  848. C->_result_type=a2;
  849. }
  850. /*No:CALL_INFIX_POWER.arguments*/
  851. void r557short(T557* C){
  852. /*IF*/if ((X662precedence((((T557*)C))->_target/*8*/))==(13)) {
  853. X662short((((T557*)C))->_target/*8*/);
  854. /*[IRF3.6short_print_feature_name*/{T557* C1=C;
  855. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T557*)C1))->_feature_name/*24*/);
  856. }/*]*/
  857. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  858. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  859. }
  860.  else if ((9)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/))) {
  861. X662bracketed_short(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  862. }
  863. else {
  864. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  865. }
  866. /*FI*/}
  867.  else if ((X662precedence((((T557*)C))->_target/*8*/))<(9)) {
  868. X662bracketed_short((((T557*)C))->_target/*8*/);
  869. /*[IRF3.6short_print_feature_name*/{T557* C1=C;
  870. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T557*)C1))->_feature_name/*24*/);
  871. }/*]*/
  872. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  873. }
  874. else {
  875. X662short((((T557*)C))->_target/*8*/);
  876. /*[IRF3.6short_print_feature_name*/{T557* C1=C;
  877. r580a_infix_name(((T580*)(oBC364short_print)),((T0*)ms2_618),((T0*)ms3_618),((T0*)ms4_618),((T0*)ms5_618),(((T557*)C1))->_feature_name/*24*/);
  878. }/*]*/
  879. X662short(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/);
  880. }
  881. /*FI*/}
  882. T0* r557add_comment(T557* C,T0* a1){
  883. T0* R=NULL;
  884. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  885. R=(T0*)C;
  886. }
  887. else {
  888. {T529*n=malloc(sizeof(*n));
  889. *n=M529;
  890. r529make(n,(T0*)C,a1);
  891. R=(T0*)n;
  892. }
  893. }
  894. /*FI*/return R;
  895. }
  896. int r557to_integer(T557* C){
  897. int R=0;
  898. r557error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  899. return R;
  900. }
  901. void r557bracketed_short(T557* C){
  902. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  903. r557short(C);
  904. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  905. }
  906. int r557is_a(T557* C,T0* a1){
  907. int R=0;
  908. R=X291is_a(X291run_type((((T557*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  909. /*IF*/if (!(R)) {
  910. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  911. r557error(X662start_position(a1),((T0*)ms4_662));
  912. }
  913. /*FI*/return R;
  914. }
  915. /*No:CALL_INFIX_POWER.is_current*/
  916. void r557make(T557* C,T0* a1,T0* a2,T0* a3){
  917. T0* _eal=NULL;
  918. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  919. r683add_position(a2);
  920. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  921. r683fatal_error(((T683*)(oBC364eh)),b1);
  922. }/*]*/
  923. }
  924. /*FI*/{T454*n=malloc(sizeof(*n));
  925. *n=M454;
  926. r454make(n,r557operator(),a2);
  927. C->_feature_name=(T0*)n;
  928. }
  929. {T431*n=malloc(sizeof(*n));
  930. *n=M431;
  931. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  932. /*]*/
  933. _eal=(T0*)n;
  934. }
  935. r557make_call_1(C,a1,(((T557*)C))->_feature_name/*24*/,_eal);
  936. }
  937. /*No:CALL_INFIX_POWER.nb_errors*/
  938. /*No:CALL_INFIX_POWER.feature_name*/
  939. /*No:CALL_INFIX_POWER.fz_iinaiv*/
  940. /*No:CALL_INFIX_POWER.run_feature*/
  941. /*No:CALL_INFIX_POWER.start_position*/
  942. /*No:CALL_INFIX_POWER.target*/
  943. /*No:CALL_INFIX_POWER.precedence*/
  944. T0* r557to_runnable(T557* C,T0* a1){
  945. T0* R=NULL;
  946. T0* _tla=NULL;
  947. T0* _a=NULL;
  948. /*IF*/if (((((T557*)C))->_current_type/*4*/)==((void*)(NULL))) {
  949. r557to_runnable_0(C,a1);
  950. _a=r431to_runnable(((T431*)((((T557*)C))->_arguments/*20*/)),a1);
  951. /*IF*/if ((_a)==((void*)(NULL))) {
  952. r557error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  953. }
  954. else {
  955. C->_arguments=_a;
  956. }
  957. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  958. r431match_with(((T431*)((((T557*)C))->_arguments/*20*/)),(((T557*)C))->_run_feature/*12*/);
  959. }
  960. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  961. _tla=(((T557*)C))->_result_type/*16*/;
  962. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  963. case 239: 
  964. break;
  965. default:
  966. _tla=NULL;
  967. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  968. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T557*)C))->_arguments/*20*/)))/*)*/));
  969. }
  970. /*FI*/}
  971. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  972. R=(T0*)C;
  973. }
  974. /*FI*/}
  975. else {
  976. R=r557twin(C);
  977. /*[IRF3.3set_current_type*/((((T557*)(((T557*)R))))->_current_type)=(NULL);
  978. /*]*/
  979. R=r557to_runnable(((T557*)R),a1);
  980. }
  981. /*FI*/return R;
  982. }
  983. /*No:CALL_INFIX_POWER.short_print_feature_name*/
  984. /*No:CALL_INFIX_POWER.result_type*/
  985. T0* r557twin(T557* C){
  986. T0* R=NULL;
  987. R=malloc(sizeof(*C));
  988. *((T557*)R)=*C;
  989. return R;
  990. }
  991. /*No:CALL_INFIX_POWER.set_current_type*/
  992. T0* r557operator(void){
  993. T0* R=NULL;
  994. R=((T0*)ms44_473);
  995. return R;
  996. }
  997. /*No:CALL_INFIX_POWER.atomic_precedence*/
  998. /*No:CALL_INFIX_POWER.current_type*/
  999. void r557make_call_1(T557* C,T0* a1,T0* a2,T0* a3){
  1000. C->_target=a1;
  1001. C->_feature_name=a2;
  1002. C->_arguments=a3;
  1003. }
  1004. /*No:CALL_INFIX_POWER.is_manifest_string*/
  1005. /*No:CALL_INFIX_POWER.is_void*/
  1006. void r557to_runnable_0(T557* C,T0* a1){
  1007. C->_current_type=a1;
  1008. r557cpc_to_runnable(C,a1);
  1009. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T557*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1010. /*IF*/if (((((T557*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1011. r683add_position(X496start_position((((T557*)C))->_run_feature/*12*/));
  1012. r557error((((T454*)((T454*)((((T557*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1013. }
  1014.  else if (X291is_like_current((((T557*)C))->_result_type/*16*/)) {
  1015. C->_result_type=X662result_type((((T557*)C))->_target/*8*/);
  1016. }
  1017. /*FI*/}
  1018. void r557cpc_to_runnable(T557* C,T0* a1){
  1019. T0* _rc=NULL;
  1020. T0* _t=NULL;
  1021. _t=X662to_runnable((((T557*)C))->_target/*8*/,a1);
  1022. /*IF*/if ((_t)==((void*)(NULL))) {
  1023. r683add_position(X662start_position((((T557*)C))->_target/*8*/));
  1024. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1025. r683fatal_error(((T683*)(oBC364eh)),b1);
  1026. }/*]*/
  1027. }
  1028. /*FI*/C->_target=_t;
  1029. _rc=X291run_class(X662result_type((((T557*)C))->_target/*8*/));
  1030. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1031. r576update((((T557*)C))->_target/*8*/,(((T557*)C))->_run_feature/*12*/);
  1032. }
  1033. void r557error(T0* a1,T0* a2){
  1034. r683add_position(a1);
  1035. r683error(((T683*)(oBC364eh)),a2);
  1036. }
  1037. /*No:CALL_INFIX_POWER.fatal_error*/
  1038. /*No:CALL_INFIX_POWER.fz_bad_argument*/
  1039. void r557short_target(T557* C){
  1040. r557bracketed_short(C);
  1041. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1042. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1043. }/*]*/
  1044. }
  1045. /*No:CALL_INFIX_POWER.arg1*/
  1046. /*No:CALL_INFIX_POWER.us_pow*/
  1047. void r72short(T72* C){
  1048. r580a_prefix_name(((T580*)(oBC364short_print)),(((T72*)C))->_feature_name/*20*/);
  1049. /*IF*/if ((X662precedence((((T72*)C))->_target/*8*/))<(11)) {
  1050. X662bracketed_short((((T72*)C))->_target/*8*/);
  1051. }
  1052. else {
  1053. X662short((((T72*)C))->_target/*8*/);
  1054. }
  1055. /*FI*/}
  1056. T0* r72add_comment(T72* C,T0* a1){
  1057. T0* R=NULL;
  1058. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1059. R=(T0*)C;
  1060. }
  1061. else {
  1062. {T529*n=malloc(sizeof(*n));
  1063. *n=M529;
  1064. r529make(n,(T0*)C,a1);
  1065. R=(T0*)n;
  1066. }
  1067. }
  1068. /*FI*/return R;
  1069. }
  1070. int r72to_integer(T72* C){
  1071. int R=0;
  1072. T0* _rf1=NULL;
  1073. _rf1=(((T72*)C))->_run_feature/*12*/;
  1074. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  1075. case 808: 
  1076. break;
  1077. default:
  1078. _rf1=NULL;
  1079. };/*IF*/if ((_rf1)==((void*)(NULL))) {
  1080. r72error(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1081. }
  1082. else {
  1083. R=X662to_integer((((T808*)((T808*)_rf1)))->_value/*44*/);
  1084. }
  1085. /*FI*/return R;
  1086. }
  1087. void r72bracketed_short(T72* C){
  1088. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  1089. r72short(C);
  1090. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  1091. }
  1092. int r72is_a(T72* C,T0* a1){
  1093. int R=0;
  1094. R=X291is_a(X291run_type((((T72*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1095. /*IF*/if (!(R)) {
  1096. r683add_position(/*(IRF4.6start_position*/(((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*//*)*/);
  1097. r72error(X662start_position(a1),((T0*)ms4_662));
  1098. }
  1099. /*FI*/return R;
  1100. }
  1101. /*No:CALL_PREFIX_MINUS.is_current*/
  1102. void r72make(T72* C,T0* a1,T0* a2){
  1103. {T406*n=malloc(sizeof(*n));
  1104. *n=M406;
  1105. r406make(n,r72operator(),a1);
  1106. C->_feature_name=(T0*)n;
  1107. }
  1108. r72make_call0(C,a2,(((T72*)C))->_feature_name/*20*/);
  1109. }
  1110. /*No:CALL_PREFIX_MINUS.nb_errors*/
  1111. /*No:CALL_PREFIX_MINUS.feature_name*/
  1112. /*No:CALL_PREFIX_MINUS.fz_iinaiv*/
  1113. /*No:CALL_PREFIX_MINUS.run_feature*/
  1114. /*No:CALL_PREFIX_MINUS.start_position*/
  1115. /*No:CALL_PREFIX_MINUS.target*/
  1116. /*No:CALL_PREFIX_MINUS.precedence*/
  1117. T0* r72to_runnable(T72* C,T0* a1){
  1118. T0* R=NULL;
  1119. /*IF*/if (((((T72*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1120. r72to_runnable_0(C,a1);
  1121. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((X496arg_count((((T72*)C))->_run_feature/*12*/))>(0))) {
  1122. r683add_position((((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*/);
  1123. r72error(X496start_position((((T72*)C))->_run_feature/*12*/),((T0*)ms1_752));
  1124. }
  1125. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1126. R=(T0*)C;
  1127. }
  1128. /*FI*/}
  1129. else {
  1130. R=r72twin(C);
  1131. /*[IRF3.3set_current_type*/((((T72*)(((T72*)R))))->_current_type)=(NULL);
  1132. /*]*/
  1133. R=r72to_runnable(((T72*)R),a1);
  1134. }
  1135. /*FI*/return R;
  1136. }
  1137. /*No:CALL_PREFIX_MINUS.result_type*/
  1138. T0* r72twin(T72* C){
  1139. T0* R=NULL;
  1140. R=malloc(sizeof(*C));
  1141. *((T72*)R)=*C;
  1142. return R;
  1143. }
  1144. /*No:CALL_PREFIX_MINUS.set_current_type*/
  1145. T0* r72operator(void){
  1146. T0* R=NULL;
  1147. R=((T0*)ms37_473);
  1148. return R;
  1149. }
  1150. /*No:CALL_PREFIX_MINUS.us_minus*/
  1151. /*No:CALL_PREFIX_MINUS.current_type*/
  1152. /*No:CALL_PREFIX_MINUS.is_manifest_string*/
  1153. /*No:CALL_PREFIX_MINUS.is_void*/
  1154. void r72to_runnable_0(T72* C,T0* a1){
  1155. C->_current_type=a1;
  1156. r72cpc_to_runnable(C,a1);
  1157. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T72*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1158. /*IF*/if (((((T72*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1159. r683add_position(X496start_position((((T72*)C))->_run_feature/*12*/));
  1160. r72error((((T406*)((T406*)((((T72*)C))->_feature_name/*20*/))))->_start_position/*8*/,((T0*)ms1_295));
  1161. }
  1162.  else if (X291is_like_current((((T72*)C))->_result_type/*16*/)) {
  1163. C->_result_type=X662result_type((((T72*)C))->_target/*8*/);
  1164. }
  1165. /*FI*/}
  1166. void r72cpc_to_runnable(T72* C,T0* a1){
  1167. T0* _rc=NULL;
  1168. T0* _t=NULL;
  1169. _t=X662to_runnable((((T72*)C))->_target/*8*/,a1);
  1170. /*IF*/if ((_t)==((void*)(NULL))) {
  1171. r683add_position(X662start_position((((T72*)C))->_target/*8*/));
  1172. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1173. r683fatal_error(((T683*)(oBC364eh)),b1);
  1174. }/*]*/
  1175. }
  1176. /*FI*/C->_target=_t;
  1177. _rc=X291run_class(X662result_type((((T72*)C))->_target/*8*/));
  1178. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1179. r576update((((T72*)C))->_target/*8*/,(((T72*)C))->_run_feature/*12*/);
  1180. }
  1181. void r72make_call0(T72* C,T0* a1,T0* a2){
  1182. C->_target=a1;
  1183. C->_feature_name=a2;
  1184. }
  1185. void r72error(T0* a1,T0* a2){
  1186. r683add_position(a1);
  1187. r683error(((T683*)(oBC364eh)),a2);
  1188. }
  1189. /*No:CALL_PREFIX_MINUS.fatal_error*/
  1190. void r72short_target(T72* C){
  1191. r72bracketed_short(C);
  1192. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  1193. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  1194. }/*]*/
  1195. }
  1196. void r209short(T209* C){
  1197. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  1198. /*[IRF3.6short_hook*/{T209* C1=C;
  1199. r580a_class_name(((T580*)(oBC364short_print)),(((T209*)C1))->_base_class_name/*4*/);
  1200. }/*]*/
  1201. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  1202. }
  1203. int fBC364type_real_ref=0;
  1204. T0*oBC364type_real_ref=NULL;
  1205. T0* r209type_real_ref(void){
  1206. if (fBC364type_real_ref==0){
  1207. T0* R=NULL;
  1208. T0* _real_ref=NULL;
  1209. fBC364type_real_ref=1;
  1210. {T451*n=malloc(sizeof(*n));
  1211. *n=M451;
  1212. r451make(n,((T0*)ms24_473),NULL);
  1213. _real_ref=(T0*)n;
  1214. }
  1215. {T657*n=malloc(sizeof(*n));
  1216. *n=M657;
  1217. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_real_ref);
  1218. /*]*/
  1219. R=(T0*)n;
  1220. }
  1221. oBC364type_real_ref=R;}
  1222. return oBC364type_real_ref;}
  1223. int r209has_creation(T209* C,T0* a1){
  1224. int R=0;
  1225. r683add_position(X776start_position(a1));
  1226. r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  1227. return R;
  1228. }
  1229. /*No:TYPE_REAL.is_anchored*/
  1230. /*No:TYPE_REAL.is_array*/
  1231. int r209is_a(T209* C,T0* a1){
  1232. int R=0;
  1233. /*IF*/if ((X291is_real(a1))||(X291is_double(a1))) {
  1234. R=1;
  1235. }
  1236. else {
  1237. R=r605is_subclass_of(((T605*)(r209base_class(C))),X291base_class(a1));
  1238. /*IF*/if (R) {
  1239. r209used_as_reference();
  1240. }
  1241. /*FI*/}
  1242. /*FI*//*IF*/if (!(R)) {
  1243. r683add_type((T0*)C,((T0*)ms71_470));
  1244. r683add_type(a1,((T0*)ms67_470));
  1245. }
  1246. /*FI*/return R;
  1247. }
  1248. /*No:TYPE_REAL.run_type*/
  1249. /*No:TYPE_REAL.is_pointer*/
  1250. /*No:TYPE_REAL.is_string*/
  1251. /*No:TYPE_REAL.is_like_feature*/
  1252. /*No:TYPE_REAL.is_like_current*/
  1253. void r209make(T209* C,T0* a1){
  1254. {T451*n=malloc(sizeof(*n));
  1255. *n=M451;
  1256. r451make(n,((T0*)ms23_473),a1);
  1257. C->_base_class_name=(T0*)n;
  1258. }
  1259. }
  1260. /*No:TYPE_REAL.nb_errors*/
  1261. /*No:TYPE_REAL.us_item*/
  1262. void r209load_ref(T0* a1){
  1263. T0* _rf=NULL;
  1264. T0* _rc=NULL;
  1265. T0* _cn=NULL;
  1266. {T451*n=malloc(sizeof(*n));
  1267. *n=M451;
  1268. r451make(n,a1,NULL);
  1269. _cn=(T0*)n;
  1270. }
  1271. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  1272. r368set_at_run_time(((T368*)_rc));
  1273. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  1274. }
  1275. int fBC209check_type=0;
  1276. void r209check_type(T209* C){
  1277. if (fBC209check_type==0){
  1278. T0* _rc=NULL;
  1279. T0* _bc=NULL;
  1280. fBC209check_type=1;
  1281. _bc=r209base_class(C);
  1282. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1283. _rc=r209run_class(C);
  1284. }
  1285. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1286. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  1287. r209error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T209*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_209));
  1288. }
  1289. /*FI*/}
  1290. /*FI*/}}
  1291. /*No:TYPE_REAL.start_position*/
  1292. /*No:TYPE_REAL.fz_inako*/
  1293. /*No:TYPE_REAL.is_character*/
  1294. T0* r209written_mark(void){
  1295. T0* R=NULL;
  1296. R=((T0*)ms23_473);
  1297. return R;
  1298. }
  1299. /*No:TYPE_REAL.is_run_type*/
  1300. T0* r209to_runnable(T209* C,T0* a1){
  1301. T0* R=NULL;
  1302. R=(T0*)C;
  1303. r209check_type(C);
  1304. return R;
  1305. }
  1306. T0* r209generic_list(T209* C){
  1307. T0* R=NULL;
  1308. r209fatal_error_generic_list(C);
  1309. return R;
  1310. }
  1311. /*No:TYPE_REAL.is_formal_generic*/
  1312. /*No:TYPE_REAL.is_real*/
  1313. /*No:TYPE_REAL.is_bit*/
  1314. void r209fatal_error_generic_list(T209* C){
  1315. r683add_type((T0*)C,((T0*)ms12_291));
  1316. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1317. }
  1318. /*No:TYPE_REAL.us_real*/
  1319. T0* r209smallest_ancestor(T209* C,T0* a1){
  1320. T0* R=NULL;
  1321. T0* _rto=NULL;
  1322. _rto=X291run_type(a1);
  1323. /*IF*/if (X291is_integer(_rto)) {
  1324. R=(T0*)C;
  1325. }
  1326.  else if (X291is_real(_rto)) {
  1327. R=(T0*)C;
  1328. }
  1329.  else if (X291is_double(_rto)) {
  1330. R=a1;
  1331. }
  1332. else {
  1333. R=r657smallest_ancestor(((T657*)(r209type_real_ref())),_rto);
  1334. }
  1335. /*FI*/return R;
  1336. }
  1337. /*No:TYPE_REAL.is_boolean*/
  1338. /*No:TYPE_REAL.is_double*/
  1339. T0* r209run_class(T209* C){
  1340. T0* R=NULL;
  1341. R=r604run_class((T0*)C);
  1342. return R;
  1343. }
  1344. T0* r209run_time_mark(void){
  1345. T0* R=NULL;
  1346. R=((T0*)ms23_473);
  1347. return R;
  1348. }
  1349. int r209is_a_in(T209* C,T0* a1,T0* a2){
  1350. int R=0;
  1351. T0* _ct=NULL;
  1352. T0* _t2=NULL;
  1353. T0* _t1=NULL;
  1354. /*IF*/if ((r209written_mark())==((void*)(X291written_mark(a1)))) {
  1355. R=1;
  1356. }
  1357. else {
  1358. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1359. _t1=r209to_runnable(C,_ct);
  1360. _t2=X291to_runnable(a1,_ct);
  1361. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1362. R=1;
  1363. }
  1364. else {
  1365. R=X291is_a(_t1,_t2);
  1366. }
  1367. /*FI*/}
  1368. /*FI*/return R;
  1369. }
  1370. T0* r209look_up_for(T209* C,T0* a1,T0* a2){
  1371. T0* R=NULL;
  1372. R=r605look_up_for(((T605*)(r209base_class(C))),a1,a2);
  1373. return R;
  1374. }
  1375. /*No:TYPE_REAL.us_real_ref*/
  1376. /*No:TYPE_REAL.expanded_initializer*/
  1377. /*No:TYPE_REAL.fz_dot*/
  1378. /*No:TYPE_REAL.is_generic*/
  1379. int fBC209used_as_reference=0;
  1380. void r209used_as_reference(void){
  1381. if (fBC209used_as_reference==0){
  1382. fBC209used_as_reference=1;
  1383. r209load_ref(((T0*)ms24_473));
  1384. }}
  1385. /*No:TYPE_REAL.is_reference*/
  1386. void r209error(T0* a1,T0* a2){
  1387. r683add_position(a1);
  1388. r683error(((T683*)(oBC364eh)),a2);
  1389. }
  1390. T0* r209base_class(T209* C){
  1391. T0* R=NULL;
  1392. T0* _bcn=NULL;
  1393. _bcn=(((T209*)C))->_base_class_name/*4*/;
  1394. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1395. R=r451base_class(((T451*)_bcn));
  1396. }
  1397. else {
  1398. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1399. r7append(((T7*)(oBC683explanation)),b1);
  1400. }/*]*/
  1401. r683add_type((T0*)C,((T0*)ms67_470));
  1402. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1403. }
  1404. /*FI*/return R;
  1405. }
  1406. /*No:TYPE_REAL.short_hook*/
  1407. /*No:TYPE_REAL.is_any*/
  1408. /*No:TYPE_REAL.base_class_name*/
  1409. /*No:TYPE_REAL.is_expanded*/
  1410. /*No:TYPE_REAL.is_basic_eiffel_expanded*/
  1411. /*No:TYPE_REAL.is_none*/
  1412. /*No:TYPE_REAL.is_integer*/
  1413. void r491short(T491* C){
  1414. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  1415. /*[IRF3.6short_hook*/{T491* C1=C;
  1416. r580a_class_name(((T580*)(oBC364short_print)),(((T491*)C1))->_base_class_name/*4*/);
  1417. }/*]*/
  1418. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  1419. }
  1420. int r491has_creation(T491* C,T0* a1){
  1421. int R=0;
  1422. R=r605has_creation(((T605*)(r491base_class(C))),a1);
  1423. return R;
  1424. }
  1425. /*No:TYPE_STRING.is_anchored*/
  1426. /*No:TYPE_STRING.is_array*/
  1427. int r491is_a(T491* C,T0* a1){
  1428. int R=0;
  1429. /*IF*/if (X291is_string(a1)) {
  1430. R=1;
  1431. }
  1432. else {
  1433. R=r605is_subclass_of(((T605*)(r491base_class(C))),X291base_class(a1));
  1434. }
  1435. /*FI*//*IF*/if (!(R)) {
  1436. r683add_type((T0*)C,((T0*)ms71_470));
  1437. r683add_type(a1,((T0*)ms67_470));
  1438. }
  1439. /*FI*/return R;
  1440. }
  1441. /*No:TYPE_STRING.run_type*/
  1442. /*No:TYPE_STRING.is_pointer*/
  1443. /*No:TYPE_STRING.is_string*/
  1444. /*No:TYPE_STRING.is_like_feature*/
  1445. /*No:TYPE_STRING.is_like_current*/
  1446. /*No:TYPE_STRING.us_capacity*/
  1447. void r491make(T491* C,T0* a1){
  1448. {T451*n=malloc(sizeof(*n));
  1449. *n=M451;
  1450. r451make(n,((T0*)ms25_473),a1);
  1451. C->_base_class_name=(T0*)n;
  1452. }
  1453. }
  1454. /*No:TYPE_STRING.nb_errors*/
  1455. /*No:TYPE_STRING.us_string*/
  1456. int fBC491check_type=0;
  1457. void r491check_type(T491* C){
  1458. if (fBC491check_type==0){
  1459. T0* _rf=NULL;
  1460. T0* _rc=NULL;
  1461. T0* _bc=NULL;
  1462. fBC491check_type=1;
  1463. _bc=r491base_class(C);
  1464. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1465. _rc=r491run_class(C);
  1466. }
  1467. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1468. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  1469. r491error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T491*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_491));
  1470. }
  1471. /*FI*/}
  1472. /*FI*/_rc=r491run_class(C);
  1473. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms55_473));
  1474. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms60_473));
  1475. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms130_473));
  1476. r368set_at_run_time(((T368*)(X291run_class(/*X496*/((T0*)(((T808*)((T808*)_rf)))->_result_type/*24*/)))));
  1477. }}
  1478. /*No:TYPE_STRING.start_position*/
  1479. /*No:TYPE_STRING.fz_inako*/
  1480. /*No:TYPE_STRING.is_character*/
  1481. T0* r491written_mark(void){
  1482. T0* R=NULL;
  1483. R=((T0*)ms25_473);
  1484. return R;
  1485. }
  1486. /*No:TYPE_STRING.is_run_type*/
  1487. T0* r491to_runnable(T491* C,T0* a1){
  1488. T0* R=NULL;
  1489. R=(T0*)C;
  1490. r491check_type(C);
  1491. return R;
  1492. }
  1493. T0* r491generic_list(T491* C){
  1494. T0* R=NULL;
  1495. r491fatal_error_generic_list(C);
  1496. return R;
  1497. }
  1498. /*No:TYPE_STRING.is_formal_generic*/
  1499. /*No:TYPE_STRING.is_real*/
  1500. /*No:TYPE_STRING.is_bit*/
  1501. void r491fatal_error_generic_list(T491* C){
  1502. r683add_type((T0*)C,((T0*)ms12_291));
  1503. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1504. }
  1505. T0* r491smallest_ancestor(T491* C,T0* a1){
  1506. T0* R=NULL;
  1507. T0* _rto_bc=NULL;
  1508. T0* _rto=NULL;
  1509. _rto=X291run_type(a1);
  1510. /*IF*/if (X291is_string(_rto)) {
  1511. R=(T0*)C;
  1512. }
  1513.  else if (X291is_none(_rto)) {
  1514. R=(T0*)C;
  1515. }
  1516.  else if (X291is_expanded(_rto)) {
  1517. R=X291smallest_ancestor(_rto,(T0*)C);
  1518. }
  1519. else {
  1520. _rto_bc=X291base_class(_rto);
  1521. /*IF*/if (r605is_subclass_of(((T605*)_rto_bc),r491base_class(C))) {
  1522. R=(T0*)C;
  1523. }
  1524. else {
  1525. R=X291smallest_ancestor(_rto,(T0*)C);
  1526. }
  1527. /*FI*/}
  1528. /*FI*/return R;
  1529. }
  1530. /*No:TYPE_STRING.is_boolean*/
  1531. /*No:TYPE_STRING.us_count*/
  1532. /*No:TYPE_STRING.is_double*/
  1533. /*No:TYPE_STRING.us_storage*/
  1534. T0* r491run_class(T491* C){
  1535. T0* R=NULL;
  1536. R=r604run_class((T0*)C);
  1537. return R;
  1538. }
  1539. T0* r491run_time_mark(void){
  1540. T0* R=NULL;
  1541. R=((T0*)ms25_473);
  1542. return R;
  1543. }
  1544. int r491is_a_in(T491* C,T0* a1,T0* a2){
  1545. int R=0;
  1546. T0* _ct=NULL;
  1547. T0* _t2=NULL;
  1548. T0* _t1=NULL;
  1549. /*IF*/if ((r491written_mark())==((void*)(X291written_mark(a1)))) {
  1550. R=1;
  1551. }
  1552. else {
  1553. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  1554. _t1=r491to_runnable(C,_ct);
  1555. _t2=X291to_runnable(a1,_ct);
  1556. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1557. R=1;
  1558. }
  1559. else {
  1560. R=X291is_a(_t1,_t2);
  1561. }
  1562. /*FI*/}
  1563. /*FI*/return R;
  1564. }
  1565. T0* r491look_up_for(T491* C,T0* a1,T0* a2){
  1566. T0* R=NULL;
  1567. R=r605look_up_for(((T605*)(r491base_class(C))),a1,a2);
  1568. return R;
  1569. }
  1570. /*No:TYPE_STRING.expanded_initializer*/
  1571. /*No:TYPE_STRING.fz_dot*/
  1572. /*No:TYPE_STRING.is_generic*/
  1573. /*No:TYPE_STRING.used_as_reference*/
  1574. /*No:TYPE_STRING.is_reference*/
  1575. void r491error(T0* a1,T0* a2){
  1576. r683add_position(a1);
  1577. r683error(((T683*)(oBC364eh)),a2);
  1578. }
  1579. T0* r491base_class(T491* C){
  1580. T0* R=NULL;
  1581. T0* _bcn=NULL;
  1582. _bcn=(((T491*)C))->_base_class_name/*4*/;
  1583. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1584. R=r451base_class(((T451*)_bcn));
  1585. }
  1586. else {
  1587. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1588. r7append(((T7*)(oBC683explanation)),b1);
  1589. }/*]*/
  1590. r683add_type((T0*)C,((T0*)ms67_470));
  1591. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1592. }
  1593. /*FI*/return R;
  1594. }
  1595. /*No:TYPE_STRING.short_hook*/
  1596. /*No:TYPE_STRING.is_any*/
  1597. /*No:TYPE_STRING.base_class_name*/
  1598. /*No:TYPE_STRING.is_expanded*/
  1599. /*No:TYPE_STRING.is_basic_eiffel_expanded*/
  1600. /*No:TYPE_STRING.is_none*/
  1601. /*No:TYPE_STRING.is_integer*/
  1602.  
  1603.